home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / guile-ii.src / guile-ii / guile-src / libguile / _scm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-16  |  17.7 KB  |  808 lines

  1. /* classes: h_files */
  2.  
  3. #ifndef _SCMH
  4. #define _SCMH
  5. /*    Copyright (C) 1995 Free Software Foundation, Inc.
  6.  * 
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 2, or (at your option)
  10.  * any later version.
  11.  * 
  12.  * This program is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  * 
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with this software; see the file COPYING.  If not, write to
  19.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  *
  21.  * As a special exception, the Free Software Foundation gives permission
  22.  * for additional uses of the text contained in its release of GUILE.
  23.  *
  24.  * The exception is that, if you link the GUILE library with other files
  25.  * to produce an executable, this does not by itself cause the
  26.  * resulting executable to be covered by the GNU General Public License.
  27.  * Your use of that executable is in no way restricted on account of
  28.  * linking the GUILE library code into it.
  29.  *
  30.  * This exception does not however invalidate any other reasons why
  31.  * the executable file might be covered by the GNU General Public License.
  32.  *
  33.  * This exception applies only to the code released by the
  34.  * Free Software Foundation under the name GUILE.  If you copy
  35.  * code from other Free Software Foundation releases into a copy of
  36.  * GUILE, as the General Public License permits, the exception does
  37.  * not apply to the code that you add in this way.  To avoid misleading
  38.  * anyone as to the status of such modified files, you must delete
  39.  * this exception notice from them.
  40.  *
  41.  * If you write modifications of your own for GUILE, it is your choice
  42.  * whether to permit this exception to apply to your modifications.
  43.  * If you do not wish that, delete this exception notice.  
  44.  */
  45.  
  46.  
  47.  
  48. /* This file is the private, general purpose include file for
  49.  * the library sources.  It defines traditional SCM names for
  50.  * many low-level macros.
  51.  *
  52.  */
  53.  
  54.  
  55. #define DIGITS '0':case '1':case '2':case '3':case '4':\
  56.  case '5':case '6':case '7':case '8':case '9'
  57.  
  58. /* LINE_INCREMENTORS are the characters which cause the line count to
  59.  * be incremented for the purposes of error reporting.  This feature
  60.  * is only used for scheme code loaded from files.
  61.  *
  62.  * WHITE_SPACES are other characters which should be treated like spaces
  63.  * in programs.
  64.  */
  65.  
  66. #define LINE_INCREMENTORS  '\n'
  67. #ifdef MSDOS
  68. # define WHITE_SPACES  ' ':case '\t':case '\r':case '\f':case 26
  69. #else
  70. # define WHITE_SPACES  ' ':case '\t':case '\r':case '\f'
  71. #endif /* def MSDOS */
  72.  
  73. #ifdef _DCC
  74. # define ASCII
  75. #else
  76. # if (('\n'=='\025') && (' '=='\100') && ('a'=='\201') && ('A'=='\301'))
  77. #  define EBCDIC
  78. # endif /*  (('\n'=='\025') && (' '=='\100') && ('a'=='\201') && ('A'=='\301')) */
  79. # if (('\n'=='\012') && (' '=='\040') && ('a'=='\141') && ('A'=='\101'))
  80. #  define ASCII
  81. # endif /*  (('\n'=='\012') && (' '=='\040') && ('a'=='\141') && ('A'=='\101')) */
  82. #endif /* def _DCC */
  83.  
  84.  
  85.  
  86.  
  87. #ifdef STDC_HEADERS
  88. # include <stdlib.h>
  89. # ifdef AMIGA
  90. #  include <stddef.h>
  91. # endif /* def AMIGA */
  92. # define sizet size_t
  93. #else
  94. # ifdef _SIZE_T
  95. #  define sizet size_t
  96. # else
  97. #  define sizet unsigned int
  98. # endif /* def _SIZE_T */
  99. #endif /* def STDC_HEADERS */
  100.  
  101.  
  102. #include "__scm.h"
  103.  
  104. #define tc3_cons        scm_tc3_cons
  105. #define tc3_cons_gloc        scm_tc3_cons_gloc
  106. #define tc3_closure        scm_tc3_closure
  107.  
  108. #define tc7_ssymbol        scm_tc7_ssymbol
  109. #define tc7_msymbol        scm_tc7_msymbol
  110. #define tc7_string        scm_tc7_string
  111. #define tc7_bvect        scm_tc7_bvect
  112. #define tc7_vector        scm_tc7_vector
  113. #define tc7_lvector        scm_tc7_lvector
  114. #define tc7_ivect        scm_tc7_ivect
  115. #define tc7_uvect        scm_tc7_uvect
  116. /* spare 37 39 */
  117. #define tc7_fvect        scm_tc7_fvect
  118. #define tc7_dvect        scm_tc7_dvect
  119. #define tc7_cvect        scm_tc7_cvect
  120. #define tc7_port        scm_tc7_port
  121. #define tc7_contin        scm_tc7_contin
  122. #define tc7_cclo        scm_tc7_cclo
  123. /* spare 69 71 77 79 */
  124. #define tc7_subr_0        scm_tc7_subr_0
  125. #define tc7_subr_1        scm_tc7_subr_1
  126. #define tc7_cxr            scm_tc7_cxr
  127. #define tc7_subr_3        scm_tc7_subr_3
  128. #define tc7_subr_2        scm_tc7_subr_2
  129. #define tc7_asubr        scm_tc7_asubr
  130. #define tc7_subr_1o        scm_tc7_subr_1o
  131. #define tc7_subr_2o        scm_tc7_subr_2o
  132. #define tc7_lsubr_2        scm_tc7_lsubr_2
  133. #define tc7_lsubr        scm_tc7_lsubr
  134. #define tc7_rpsubr        scm_tc7_rpsubr
  135.  
  136. #define tc7_smob        scm_tc7_smob
  137. #define tc_free_cell        scm_tc_free_cell
  138.  
  139. #define tc16_flo        scm_tc16_flo
  140. #define tc_flo            scm_tc_flo
  141.  
  142. #define REAL_PART        SCM_REAL_PART
  143. #define IMAG_PART        SCM_IMAG_PART
  144. #define tc_dblr            scm_tc_dblr
  145. #define tc_dblc            scm_tc_dblc
  146.  
  147. #define tc16_bigpos        scm_tc16_bigpos
  148. #define tc16_bigneg        scm_tc16_bigneg
  149.  
  150. #define tc16_fport        scm_tc16_fport
  151. #define tc16_pipe        scm_tc16_pipe
  152. #define tc16_strport        scm_tc16_strport
  153. #define tc16_sfport        scm_tc16_sfport
  154.  
  155.  
  156.  
  157. /* For cons pairs with immediate values in the CAR */
  158. #define tcs_cons_imcar        scm_tcs_cons_imcar
  159.  
  160. /* For cons pairs        pairs with non-immediate values in the CAR */
  161. #define tcs_cons_nimcar        scm_tcs_cons_nimcar
  162.  
  163. /* A CONS_GLOC occurs in code.  It's CAR is a pointer to the
  164.  * CDR of a variable.  The low order bits of the CAR are 001.
  165.  * The CDR of the gloc is the code continuation.
  166.  */
  167. #define tcs_cons_gloc        scm_tcs_cons_gloc
  168.  
  169. #define tcs_closures        scm_tcs_closures
  170. #define tcs_subrs        scm_tcs_subrs
  171. #define tcs_symbols        scm_tcs_symbols
  172. #define tcs_bignums        scm_tcs_bignums
  173.  
  174.  
  175.  
  176. /* Extracting Tag Bits, With or Without GC Safety and Optional Bits
  177.  */
  178. #define TYP3        SCM_TYP3
  179. #define TYP7        SCM_TYP7
  180. #define TYP7S        SCM_TYP7S
  181. #define TYP16        SCM_TYP16
  182. #define TYP16S        SCM_TYP16S
  183. #define GCTYP16        SCM_GCTYP16
  184.  
  185.  
  186. /* Heap Pairs and the Empty List Predicates
  187.  */
  188. #define NULLP        SCM_NULLP
  189. #define NNULLP        SCM_NNULLP
  190. #define CELLP        SCM_CELLP
  191. #define NCELLP        SCM_NCELLP
  192.  
  193. #define MOST_POSITIVE_FIXNUM    SCM_MOST_POSITIVE_FIXNUM
  194. #define MOST_NEGATIVE_FIXNUM    SCM_MOST_NEGATIVE_FIXNUM
  195. #define CHAR_CODE_LIMIT        SCM_CHAR_CODE_LIMIT
  196.  
  197. /* Testing and Changing GC Marks in Various Standard Positions
  198.  */
  199. #define GCMARKP        SCM_GCMARKP
  200. #define GC8MARKP    SCM_GC8MARKP
  201. #define SETGCMARK    SCM_SETGCMARK
  202. #define CLRGCMARK    SCM_CLRGCMARK
  203. #define SETGC8MARK    SCM_SETGC8MARK
  204. #define CLRGC8MARK    SCM_CLRGC8MARK
  205.  
  206.  
  207. #ifdef STACK_LIMIT
  208. # define CHECK_STACK {scm_stack_check();}
  209. #else
  210. # define CHECK_STACK /**/
  211. #endif /* def STACK_LIMIT */
  212.  
  213.  
  214.  
  215. #include "error.h"
  216.  
  217. #ifdef SCM_POINTERS_MUNGED
  218. #define POINTERS_MUNGED
  219. #endif
  220.  
  221. #define DEFER_INTS    SCM_DEFER_INTS
  222. #define ALLOW_INTS    SCM_ALLOW_INTS
  223. #define REDEFER_INTS    SCM_REDEFER_INTS
  224. #define REALLOW_INTS    SCM_REALLOW_INTS
  225. #define POLL        SCM_POLL
  226.  
  227. #define ASSERT        SCM_ASSERT
  228. #define ASRTGO        SCM_ASRTGO
  229.  
  230. #define ARGn        SCM_ARGn
  231. #define ARG1        SCM_ARG1
  232. #define ARG2        SCM_ARG2
  233. #define ARG3        SCM_ARG3
  234. #define ARG4        SCM_ARG4
  235. #define ARG5        SCM_ARG5
  236. #define ARG6        SCM_ARG6
  237. #define ARG7        SCM_ARG7
  238. #define ARGERR        SCM_ARGERR
  239.  
  240. #define WNA        SCM_WNA
  241. #define OVFLOW        SCM_OVFLOW
  242. #define OUTOFRANGE    SCM_OUTOFRANGE
  243. #define NALLOC        SCM_NALLOC
  244. #define EXIT        SCM_EXIT
  245. #define HUP_SIGNAL    SCM_HUP_SIGNAL
  246. #define INT_SIGNAL    SCM_INT_SIGNAL
  247. #define FPE_SIGNAL    SCM_FPE_SIGNAL
  248. #define BUS_SIGNAL    SCM_BUS_SIGNAL
  249. #define SEGV_SIGNAL    SCM_SEGV_SIGNAL
  250. #define ALRM_SIGNAL    SCM_ALRM_SIGNAL
  251.  
  252.  
  253.  
  254. #ifndef EXIT_SUCCESS
  255. #define EXIT_SUCCESS SCM_EXIT_SUCCESS
  256. #define EXIT_FAILURE SCM_EXIT_FAILURE
  257. #endif
  258.  
  259. /* On VMS, GNU C's errno.h contains a special hack to get link attributes
  260.  * for errno correct for linking to the C RTL.
  261.  */
  262. #include <errno.h>
  263.  
  264. /* SYSCALL retries system calls that have been interrupted (EINTR) */
  265. #ifdef vms
  266. # ifndef __GNUC__
  267. #  include <ssdef.h>
  268. #  define SYSCALL(line) do{errno = 0;line;} \
  269.     while(EVMSERR==errno && (vaxc$errno>>3)==(SS$_CONTROLC>>3))
  270. # endif /* ndef __GNUC__ */
  271. #endif /* def vms */
  272.  
  273. #ifndef SYSCALL
  274. # ifdef EINTR
  275. #  if (EINTR > 0)
  276. #   define SYSCALL(line) do{errno = 0;line;}while(EINTR==errno)
  277. #  endif /*  (EINTR > 0) */
  278. # endif /* def EINTR */
  279. #endif /* ndef SYSCALL */
  280.  
  281. #ifndef SYSCALL
  282. # define SYSCALL(line) {line;}
  283. #endif /* ndef SYSCALL */
  284.  
  285. #ifndef MSDOS
  286. # ifdef ARM_ULIB
  287.     extern volatile int errno;
  288. # else
  289.     extern int errno;
  290. # endif /* def ARM_ULIB */
  291. #endif /* ndef MSDOS */
  292. #ifdef __TURBOC__
  293. # if (__TURBOC__==1)
  294.  /* Needed for TURBOC V1.0 */
  295.  extern int errno;
  296. # endif /*  (__TURBOC__==1) */
  297. #endif /* def __TURBOC__ */
  298.  
  299.  
  300.  
  301. #define SMOBNUM        SCM_SMOBNUM
  302. #define PTOBNUM        SCM_PTOBNUM
  303.  
  304.  
  305. #define ILOCP    SCM_ILOCP
  306. #define ILOC00    SCM_ILOC00
  307. #define IDINC    SCM_IDINC
  308. #define ICDR    SCM_ICDR
  309. #define IFRINC    SCM_IFRINC
  310. #define IDSTMSK    SCM_IDSTMSK
  311. #define IFRAME    SCM_IFRAME
  312. #define IDIST    SCM_IDIST
  313. #define ICDRP    SCM_ICDRP
  314.  
  315.  
  316.  
  317. #define ISYMP        SCM_ISYMP
  318. #define IFLAGP        SCM_IFLAGP
  319. #define ISYMNUM        SCM_ISYMNUM
  320. #define ISYMCHARS    SCM_ISYMCHARS
  321. #define MAKSPCSYM    SCM_MAKSPCSYM
  322. #define MAKISYM        SCM_MAKISYM
  323. #define MAKIFLAG    SCM_MAKIFLAG
  324.  
  325.  
  326. #define IM_AND        SCM_IM_AND
  327. #define IM_BEGIN    SCM_IM_BEGIN
  328. #define IM_CASE        SCM_IM_CASE
  329. #define IM_COND        SCM_IM_COND
  330. #define IM_DO        SCM_IM_DO
  331. #define IM_IF        SCM_IM_IF
  332. #define IM_LAMBDA    SCM_IM_LAMBDA
  333. #define IM_LET        SCM_IM_LET
  334. #define IM_LETSTAR    SCM_IM_LETSTAR
  335. #define IM_LETREC    SCM_IM_LETREC
  336. #define IM_OR        SCM_IM_OR
  337. #define IM_QUOTE    SCM_IM_QUOTE
  338. #define IM_SET        SCM_IM_SET
  339. #define IM_DEFINE    SCM_IM_DEFINE
  340. #define IM_APPLY    SCM_IM_APPLY
  341. #define IM_CONT        SCM_IM_CONT
  342. #define NUM_ISYMS    SCM_NUM_ISYMS
  343.  
  344.  
  345. /* Basic predicates */
  346. #define IMP        SCM_IMP
  347. #define NIMP        SCM_NIMP
  348. #define UNBNDP        SCM_UNBNDP
  349. #define UNSPECIFIED    SCM_UNSPECIFIED
  350. #define EOF_VAL        SCM_EOF_VAL
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357. /* Booleans */
  358. #include "boolean.h"
  359.  
  360. #define BOOL_F        SCM_BOOL_F
  361. #define BOOL_T        SCM_BOOL_T
  362. #define FALSEP        SCM_FALSEP
  363. #define NFALSEP        SCM_NFALSEP
  364. #define BOOL_NOT    SCM_BOOL_NOT
  365.  
  366.  
  367. #include "numbers.h"
  368.  
  369. /* IS_INF tests its floating point number for infiniteness
  370.  */
  371. #ifndef IS_INF
  372. # define IS_INF(x) ((x)==(x)/2)
  373. #endif
  374.  
  375. /* MAXEXP is the maximum double precision expontent
  376.  * FLTMAX is less than or scm_equal the largest single precision float
  377.  */
  378.  
  379. #ifdef FLOATS
  380. # ifdef STDC_HEADERS
  381. #  ifndef GO32
  382. #   include <float.h>
  383. #  endif /* ndef GO32 */
  384. # endif /* def STDC_HEADERS */
  385. # ifdef DBL_MAX_10_EXP
  386. #  define MAXEXP DBL_MAX_10_EXP
  387. # else
  388. #  define MAXEXP 308   /* IEEE doubles */
  389. # endif /* def DBL_MAX_10_EXP */
  390. # ifdef FLT_MAX
  391. #  define FLTMAX FLT_MAX
  392. # else
  393. #  define FLTMAX 1e+23
  394. # endif /* def FLT_MAX */
  395. #endif /* def FLOATS */
  396.  
  397.  
  398. /* Immediate numbers -- exact integer data that fits 
  399.  * within an SCM word.
  400.  */
  401. #define INUMP        SCM_INUMP
  402. #define NINUMP        SCM_NINUMP
  403. #define INUM0        SCM_INUM0
  404. #define MAKINUM        SCM_MAKINUM
  405. #define INUM        SCM_INUM
  406. #define SRS        SCM_SRS
  407.  
  408. /* FIXABLE is non-0 if its long argument can be encoded in an INUM.
  409.  */
  410. #define POSFIXABLE    SCM_POSFIXABLE
  411. #define NEGFIXABLE    SCM_NEGFIXABLE
  412. #define UNEGFIXABLE    SCM_UNEGFIXABLE
  413. #define FIXABLE        SCM_FIXABLE
  414.  
  415. #ifndef CHAR_BIT
  416. #define CHAR_BIT    SCM_CHAR_BIT
  417. #endif
  418.  
  419. #ifndef LONG_BIT
  420. #define LONG_BIT    SCM_LONG_BIT
  421. #endif
  422.  
  423. #define INTBUFLEN    SCM_INTBUFLEN
  424. #define FLOBUFLEN    SCM_FLOBUFLEN
  425.  
  426. #define INEXP        SCM_INEXP
  427. #define CPLXP        SCM_CPLXP
  428. #define REAL        SCM_REAL
  429. #define IMAG        SCM_IMAG
  430. #define REALP        SCM_REALP
  431. #define SINGP        SCM_SINGP
  432. #define FLO        SCM_FLO
  433. #define REALPART    SCM_REALPART
  434. #define NUMBERP        SCM_NUMBERP
  435. #define NUMP        SCM_NUMP
  436. #define BIGP        SCM_BIGP
  437. #define BIGSIGN        SCM_BIGSIGN
  438. #define BDIGITS        SCM_BDIGITS
  439. #define NUMDIGS        SCM_NUMDIGS
  440. #define SETNUMDIGS    SCM_SETNUMDIGS
  441.  
  442.  
  443. #define DIGSTOOBIG SCM_DIGSTOOBIG
  444. #ifndef NO_BIGDIG
  445. #define BIGDIG SCM_BIGDIG
  446. #endif
  447. #define BITSPERDIG SCM_BITSPERDIG
  448. #define BIGRAD SCM_BIGRAD
  449. #define DIGSPERLONG SCM_DIGSPERLONG
  450. #define BIGUP SCM_BIGUP
  451. #define BIGDN SCM_BIGDN
  452. #define BIGLO SCM_BIGLO
  453.  
  454.  
  455.  
  456. #include "chars.h"
  457.  
  458. /* Immediate characters.
  459.  */
  460. #define ICHRP        SCM_ICHRP
  461. #define ICHR        SCM_ICHR
  462. #define MAKICHR        SCM_MAKICHR
  463.  
  464.  
  465. /* Cons Pairs
  466.  */
  467. #include "pairs.h"
  468.  
  469. #define EOL    SCM_EOL
  470.  
  471. #define NCONSP    SCM_NCONSP
  472. #define CONSP    SCM_CONSP
  473. #define ECONSP    SCM_ECONSP
  474. #define NECONSP    SCM_NECONSP
  475.  
  476. #define CAR    SCM_CAR
  477. #define CDR    SCM_CDR
  478. #define GCCDR    SCM_GCCDR
  479. #define SETCDR    SCM_SETCDR
  480.  
  481. #define CELLPTR    SCM_CELLPTR
  482. #define PTR_LT    SCM_PTR_LT
  483.  
  484. #define NEWCELL SCM_NEWCELL
  485.  
  486.  
  487. #include "smob.h"
  488.  
  489.  
  490. #include "symbols.h"
  491.  
  492. #define SYMBOLP        SCM_SYMBOLP
  493. #define ROSTRINGP    SCM_ROSTRINGP
  494. #define LENGTH        SCM_LENGTH
  495. #define LENGTH_MAX    SCM_LENGTH_MAX
  496. #define SETLENGTH    SCM_SETLENGTH
  497. #define SETCHARS    SCM_SETCHARS
  498. #define CHARS        SCM_CHARS
  499. #define UCHARS        SCM_UCHARS
  500. #define SLOTS        SCM_SLOTS
  501. #define SYMBOL_SLOTS    SCM_SYMBOL_SLOTS
  502. #define SYMBOL_FUNC    SCM_SYMBOL_FUNC
  503. #define SYMBOL_PROPS    SCM_SYMBOL_PROPS
  504. #define SYMBOL_HASH    SCM_SYMBOL_HASH
  505.  
  506.  
  507.  
  508. #include "strings.h"
  509.  
  510. #define STRINGP        SCM_STRINGP
  511. #define NSTRINGP    SCM_NSTRINGP
  512.  
  513.  
  514.  
  515. #include "strop.h"
  516.  
  517.  
  518.  
  519. #include "kw.h"
  520.  
  521. #define tc16_kw        scm_tc16_kw
  522. #define KEYWORDP    SCM_KEYWORDP
  523. #define KEYWORDSYM    SCM_KEYWORDSYM
  524.  
  525.  
  526.  
  527. #include "variable.h"
  528.  
  529. #define tc16_variable        scm_tc16_variable
  530.  
  531. #define VARVCELL        SCM_VARVCELL
  532. #define VARIABLEP        SCM_VARIABLEP
  533. #define UDVARIABLEP        SCM_UDVARIABLEP
  534. #define DEFVARIABLEP        SCM_DEFVARIABLEP
  535.  
  536.  
  537.  
  538. #include "vectors.h"
  539.  
  540. #define VECTORP        SCM_VECTORP
  541. #define NVECTORP    SCM_NVECTORP
  542. #define VELTS        SCM_VELTS
  543. #define SETVELTS    SCM_SETVELTS
  544.  
  545.  
  546. #include "lvectors.h"
  547.  
  548. #define LVECTORP    SCM_LVECTORP
  549. #define LVECTOR_KEY    SCM_LVECTOR_KEY
  550. #define LV_REF_FN    SCM_LV_REF_FN
  551. #define LV_SET_FN    SCM_LV_SET_FN
  552. #define LV_PRINT_FN    SCM_LV_PRINT_FN
  553. #define LV_EQUAL_FN    SCM_LV_EQUAL_FN
  554. #define LV_ISA_FN    SCM_LV_ISA_FN
  555.  
  556.  
  557.  
  558.  
  559. #include "record.h"
  560.  
  561.  
  562.  
  563. #include "unif.h"
  564.  
  565. #define ARRAYP            SCM_ARRAYP
  566. #define ARRAY_V            SCM_ARRAY_V
  567. #define ARRAY_NDIM        SCM_ARRAY_NDIM
  568. #define ARRAY_CONTIGUOUS    SCM_ARRAY_CONTIGUOUS
  569. #define ARRAY_CONTP        SCM_ARRAY_CONTP
  570. #define ARRAY_BASE        SCM_ARRAY_BASE
  571. #define ARRAY_DIMS        SCM_ARRAY_DIMS
  572.  
  573.  
  574.  
  575.  
  576.  
  577. #include "ramap.h"
  578.  
  579.  
  580. #include "struct.h"
  581.  
  582. #define struct_i_name        scm_struct_i_name
  583. #define struct_i_vcell        scm_struct_i_vcell
  584. #define struct_i_format        scm_struct_i_format
  585. #define struct_i_refcnt        scm_struct_i_refcnt
  586. #define struct_i_self        scm_struct_i_self
  587. #define struct_i_sekrit        scm_struct_i_sekrit
  588. #define struct_i_vtab_size    scm_struct_i_vtab_size
  589. #define struct_i_vtab        scm_struct_i_vtab
  590. #define n_struct_header        scm_n_struct_header
  591.  
  592. #define STRUCT_TYPE_NAME    SCM_STRUCT_TYPE_NAME
  593. #define STRUCT_TYPE_VCELL    SCM_STRUCT_TYPE_VCELL
  594. #define STRUCT_TYPE_FORMAT    SCM_STRUCT_TYPE_FORMAT
  595. #define STRUCT_TYPE_REFCNT    SCM_STRUCT_TYPE_REFCNT
  596. #define STRUCT_TYPE_SELF    SCM_STRUCT_TYPE_SELF
  597. #define STRUCT_TYPE_SEKRIT    SCM_STRUCT_TYPE_SEKRIT
  598. #define STRUCT_TYPE_VTAB_SIZE    SCM_STRUCT_TYPE_VTAB_SIZE
  599. #define STRUCT_TYPE_VTAB    SCM_STRUCT_TYPE_VTAB
  600. #define STRUCT_TYPEP        SCM_STRUCT_TYPEP
  601.  
  602. #define STRUCTP            SCM_STRUCTP
  603. #define STRUCT_TYPE        SCM_STRUCT_TYPE
  604.  
  605.  
  606.  
  607. #include "procs.h"
  608.  
  609. #define SNAME        SCM_SNAME
  610. #define SUBRF        SCM_SUBRF
  611. #define DSUBRF        SCM_DSUBRF
  612. #define CCLO_SUBR    SCM_CCLO_SUBR
  613. #define CLOSUREP    SCM_CLOSUREP
  614. #define CLOSCAR        SCM_CLOSCAR
  615. #define CODE        SCM_CODE
  616. #define PROCPROPS    SCM_PROCPROPS
  617. #define SETCODE        SCM_SETCODE
  618. #define ENV        SCM_ENV
  619. #define TOP_LEVEL    SCM_TOP_LEVEL
  620.  
  621.  
  622.  
  623. #include "gsubr.h"
  624.  
  625.  
  626.  
  627. #include "ports.h"
  628.  
  629. /* PORT FLAGS
  630.  * A set of flags caracterizes a port.
  631.  */
  632. #define OPN        SCM_OPN
  633. #define RDNG        SCM_RDNG
  634. #define WRTNG        SCM_WRTNG
  635. #define BUF0        SCM_BUF0
  636. #define CRDY        SCM_CRDY
  637. #define CUC        SCM_CUC
  638.  
  639. #define PORTP        SCM_PORTP
  640. #define OPPORTP        SCM_OPPORTP
  641. #define OPINPORTP    SCM_OPINPORTP
  642. #define OPOUTPORTP    SCM_OPOUTPORTP
  643. #define FPORTP        SCM_FPORTP
  644. #define OPFPORTP    SCM_OPFPORTP
  645. #define OPINFPORTP    SCM_OPINFPORTP
  646. #define OPOUTFPORTP    SCM_OPOUTFPORTP
  647.  
  648. #define INPORTP        SCM_INPORTP
  649. #define OUTPORTP    SCM_OUTPORTP
  650. #define OPENP        SCM_OPENP
  651. #define CLOSEDP        SCM_CLOSEDP
  652. #define STREAM        SCM_STREAM
  653. #define SETSTREAM    SCM_SETSTREAM
  654. #define CRDYP        SCM_CRDYP
  655. #define CLRDY        SCM_CLRDY
  656. #define CGETUN        SCM_CGETUN
  657. #define CUNGET        SCM_CUNGET
  658.  
  659. #define DIRP        SCM_DIRP
  660. #define OPDIRP        SCM_OPDIRP
  661.  
  662.  
  663.  
  664.  
  665. #include "vports.h"
  666. #include "fports.h"
  667. #include "strports.h"
  668.  
  669.  
  670.  
  671. #include "eq.h"
  672.  
  673.  
  674.  
  675. #include "dynwind.h"
  676.  
  677.  
  678.  
  679. #include "continuations.h"
  680.  
  681.  
  682.  
  683. #include "time.h"
  684.  
  685.  
  686.  
  687. #include "hash.h"
  688.  
  689.  
  690.  
  691. #include "files.h"
  692.  
  693.  
  694.  
  695. #include "arbiters.h"
  696.  
  697.  
  698.  
  699. #include "throw.h"
  700.  
  701.  
  702.  
  703. #include "eval.h"
  704.  
  705.  
  706.  
  707. #include "feature.h"
  708.  
  709.  
  710.  
  711. #include "scmsigs.h"
  712.  
  713.  
  714.  
  715. #include "simpos.h"
  716.  
  717.  
  718.  
  719.  
  720. /* GC */
  721.  
  722. #include "gc.h"
  723.  
  724. #define STACKITEM        SCM_STACKITEM
  725.  
  726. #define cur_inp            scm_cur_inp
  727. #define cur_outp        scm_cur_outp
  728. #define cur_errp        scm_cur_errp
  729. #define def_inp            scm_def_inp
  730. #define def_outp        scm_def_outp
  731. #define def_errp        scm_def_errp
  732. #define listofnull        scm_listofnull
  733. #define undefineds        scm_undefineds
  734. #define nullvect        scm_nullvect
  735. #define nullstr            scm_nullstr
  736. #define symhash            scm_symhash
  737. #define progargs        scm_progargs
  738. #define transcript        scm_transcript
  739. #define rootcont        scm_rootcont
  740. #define dynwinds        scm_dynwinds
  741. #define symhash_vars        scm_symhash_vars
  742. #define permobjs        scm_permobjs
  743. #define flo0            scm_flo0
  744. #define kw_obarray        scm_kw_obarray
  745. #define type_obj_list        scm_type_obj_list
  746. #define first_type        scm_first_type
  747. #define NUM_PROTECTS        SCM_NUM_PROTECTS
  748.  
  749. #define PTR_GT        SCM_PTR_GT
  750. #define PTR_LE        SCM_PTR_LE
  751. #define PTR_GE        SCM_PTR_GE
  752.  
  753.  
  754.  
  755. #include "stackchk.h"
  756.  
  757.  
  758.  
  759. /* Repl.c */
  760. #include "repl.h"
  761.  
  762.  
  763.  
  764.  
  765. #define EVAL(x, env) (IMP(x)?(x):scm_ceval((x), (env)))
  766. #define SIDEVAL(x, env) if NIMP(x) scm_ceval((x), (env))
  767.  
  768.  
  769.  
  770. #ifndef SCM_MAGIC_SNARFER
  771. #define PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
  772.     static char RANAME[]=STR;
  773. #define PROC1(RANAME, STR, TYPE, CFN)  \
  774.     static char RANAME[]=STR;
  775. #else
  776. #define PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
  777. %%% scm_make_gsubr (RANAME, REQ, OPT, VAR, CFN)
  778. #define PROC1(RANAME, STR, TYPE, CFN)  \
  779. %%% scm_make_subr(RANAME, TYPE, CFN)
  780. #endif
  781.  
  782.  
  783.  
  784.  
  785.  
  786. #define long2num    scm_long2num
  787. #define scm_vector2list    scm_vector_to_list
  788. #define scm_string2list    scm_string_to_list
  789. #define scm_lputs    scm_puts
  790. #define scm_equal    scm_equal_p
  791. #define scm_my_time    scm_get_internal_run_time
  792. #define scm_your_time    scm_get_internal_real_time
  793. #define scm_procedurep    scm_procedure_p
  794. #define scm_eqp        scm_eq_p
  795. #define scm_lessp    scm_less_p
  796.  
  797. extern void scm_init_ramap ();
  798. extern void scm_init_unif ();
  799.  
  800. #ifdef __STDC__
  801.  
  802. #else /* STDC */
  803.  
  804. #endif /* STDC */
  805.  
  806.  
  807. #endif  /* _SCMH */
  808.